<?php


class Cadastrar_usuario extends MY_Controller {
  public function index()
  {
    $data['title'] = "SisCaD-TP - Cadastrar Usuario";
    $data['pagina'] = "cadastrar_usuario";
    $data['menu'] = $this->montaMenu();
    $this->load->view('templates/header',$data);
    $this->load->view('pages/pesquisaUsuario',$data);
    $this->load->view('templates/footer');

  }
  public function buscarPorNome()
  {
   $consulta = "select * from usuario where nome REGEXP '{$_POST['campo']}'";
   $query = $this->db->query($consulta);
   if ($query->num_rows() > 0)
     {
     $i = 0;
     foreach ($query->result() as $lic)
     {
      $data['data'][$i]['id'] = $lic->id;
      $data['data'][$i]['nome'] = $lic->nome;
      $data['data'][$i]['matricula'] = $lic->matricula;
      $i++;
     }
      $this->load->view('pages/selecionaUser',$data);
    }
    else
    {
      echo "<br>erro|Usuario não encontrado.";
    }

  }
  public function buscar_matricula()
  {
  $consulta = "select * from usuario where matricula = '{$_POST['campo']}'";
  $query = $this->db->query($consulta);
  $this->load->model('perfil_model');
  if ($query->num_rows() > 0)
  {
    $data = $query->result_array();
    $data = $data[0];
    $busca_perfil = "select perfil from usuario_perfil where usuario = {$data['id']} group by perfil";
    $query = $this->db->query($busca_perfil);
    if ($query->num_rows() > 0)
      foreach ($query->result() as $a)
	$data['perfil'][] = $a-> perfil;
    $data['perfis'] = $this->perfil_model->montaCheck($data['perfil']);
    $this->load->view('pages/alteraUser',$data);
  }
  else
  {
    echo "erro|<br>Usuario não cadastrado.";
  }

  }


	
  public function incluir()
  {
    $data_gravacao = date("Y-m-d");
    $dados = array (
	'id'=>NULL,
	'nome'=>$_POST["nome"],
	'matricula'=>$_POST["matricula"],
	'nome_tela'=>$_POST["nome_tela"],
	'senha'=>md5($_POST['senha']),
	'ativo'=>$_POST["ativo"],
	'ultima_alteracao' => $data_gravacao,
	'usuario' => $this->session->userdata('user_id')
    );

    $this->db->trans_begin();

    try
    {
      $a = $this->db->insert('usuario', $dados);
      //$this->licitacao_model->inserir($dados);
      if  (!$a)
      {
	throw new Exception("erro ao inserir licitacao".mysql_error());
      }
	$this->db->select("LAST_INSERT_ID() as id");
	$b = $this->db->get();
	$row = $b->row();
	$id = $row->id;
	$perfis = substr($_POST['perfis'], 0,-1);
	$perfis = explode('|',$perfis);
	$i = 0;
	foreach ($perfis as $k)
	{
	  $item[$i]['id'] = NULL;
	  $item[$i]['usuario'] = $id;
	  $item[$i]['perfil'] = $k;
	  $item[$i]['ultima_alteracao'] = $data_gravacao;
	  $item[$i]['usuario_alteracao'] = $this->session->userdata('user_id');
	  $i++;
	}
	$a = $this->db->insert_batch('usuario_perfil', $item);
	//$this->licitacao_model->inserir($dados);
	if  (!$a)
	{
	  throw new Exception("erro ao inserir item de licitacao".mysql_error());
	}
      //$this->db->trans_status();
    }
    catch (Exception $e){
       $this->db->trans_rollback();
       echo $e->getMessage();
    }

    $this->db->trans_commit();
    echo "sucesso|<br>Dados Gravados Com Sucesso<br>";
  }

  public function alterar()
  {
    $data_gravacao = date("Y-m-d");
    $dados = array (
	'nome'=>$_POST["nome"],
   'matricula'=>$_POST['matricula'],
    'nome_tela'=>$_POST['nome_tela'],
    'ativo'=>$_POST['ativo'],
	'ultima_alteracao' => $data_gravacao,
	'usuario' => $this->session->userdata('user_id')
    );

    $this->db->trans_begin();

    try
    {
      $this->db->where("id = {$_POST['id']}");
      $a = $this->db->update('usuario', $dados);
      //$this->licitacao_model->inserir($dados);
      if  (!$a)
      {
	throw new Exception("erro ao inserir licitacao".mysql_error());
      }
      $deleta_perfil = "delete from usuario_perfil where usuario = {$_POST['id']}";
      $query = $this->db->query($deleta_perfil);
      if  (!$query)
      {
	throw new Exception("erro ao deletar perfis".mysql_error());
      }
      $id = $_POST['id'];
      $perfis = substr($_POST['perfis'], 0,-1);
      $perfis = explode('|',$perfis);
      $i = 0;
      foreach ($perfis as $k)
      {
	$item[$i]['id'] = NULL;
	$item[$i]['usuario'] = $id;
	$item[$i]['perfil'] = $k;
	$item[$i]['ultima_alteracao'] = $data_gravacao;
	$item[$i]['usuario_alteracao'] = $this->session->userdata('user_id');
	$i++;
      }
      $a = $this->db->insert_batch('usuario_perfil', $item);
      //$this->licitacao_model->inserir($dados);
      if  (!$a)
      {
	throw new Exception("erro ao inserir item de licitacao".mysql_error());
      }
    //$this->db->trans_status();
    }
    catch (Exception $e){
       $this->db->trans_rollback();
       echo $e->getMessage();
    }

    $this->db->trans_commit();
    echo "sucesso|<br>Dados Gravados Com Sucesso<br>";
  }
  
  function novo(){
    $this->load->model('perfil_model');
    $data['perfis'] = $this->perfil_model->montaCheck();
    $this->load->view('pages/alteraUser',$data);
  }

  
  public function restaurar(){
    $rand = random_string();
    $data_gravacao = date("Y-m-d");
    $dados = array (
      'senha'=>md5($rand)
    );
    $this->db->trans_begin();
    try
    {
      $this->db->where("id = {$_POST['id']}");
      $a = $this->db->update('usuario', $dados);
      //$this->licitacao_model->inserir($dados);
      if  (!$a)
      {
	throw new Exception("erro ao inserir licitacao".mysql_error());
      }
    }
    catch (Exception $e){
       $this->db->trans_rollback();
       echo $e->getMessage();
    }

    $this->db->trans_commit();
    echo "sucesso|<br>Dados Gravados Com Sucesso. A nova senha é <b>{$rand}</b><br>";
  }

}
?>
